package cc.facesign.acl.service;

import cc.facesign.acl.bean.AclMenu;
import cc.facesign.acl.bean.MenuTree;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 权限菜单 服务类
 * </p>
 *
 * @author acdongla
 * @since 2022-05-02
 */
public interface AclMenuService extends IService<AclMenu> {


    /**
     * 根据menuId获取权限树
     * @param id menuId
     * @return
     */
    MenuTree getMenuTreeByMenuId(String id);

    /**
     * 根据userid获取所有perms
     * @param id 用户id
     * @return
     */
    List<String> getAllPermsByUserId(String id);

    /**
     * 根据roleId批量获取Menu列表
     * @param roleIds
     * @return
     */
    List<AclMenu> getByRoleIdBatch(List<String> roleIds);

    /**
     * 根据menuId获取所有子menu（包括本身）
     */
    List<AclMenu> getChildMenuByMenuId(String menuId);

    /**
     * 拆解menu树
     */
    List<AclMenu> getListByTree(MenuTree menuTree);
}
